﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Business_Objects;
using ServicesComponent.Repositories;

public partial class Delete : System.Web.UI.Page
{
    public static String Webroot;
    private  string action="";
    private static string id = "";
    private ISchoolYearRepository _SchoolYearRepository;
    private static IBlockRepository _BlockRepository;
    private IClassRepository _ClassRepository;
    private ITrinhDoRepository _TrinhDoRepository;
    private INhomThucPhamRepository _NhomThucPhamRepository;
    private IThucPhamRepository _ThucPhamRepository;
    private IMauSuatAnChiTietRepository _MauSuatAnChiTietRepository; 


    protected void Page_Load(object sender, EventArgs e)
    {
         Webroot = ControlBase.WebRoot;
             action = Request.QueryString["ac"].ToString();      
            id = Request.QueryString["id"].ToString();

        if (action == "'NienKhoa'")
        {
        //    lblTitle.Text = "Bạn có chắc chắn xóa niên khóa này?";
        }
    }

    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        //Với mỗi trang truyền action khác nhau
        if (action == "'NienKhoa'")
        {         
            if (true)//Check validate, ràng buộc khi xóa bản ghi
             {
                _SchoolYearRepository = FactoryServices.GetServicesSchoolYear(_SchoolYearRepository);
                _SchoolYearRepository.Delete(_SchoolYearRepository.Get(id));
                Alert.Show("Xóa thành công!");
                Alert.ClodePopup();
            }

        }
        //Với mỗi trang truyền action khác nhau
        if (action == "'Khoi'")
        {
            if (true)//Check validate, ràng buộc khi xóa bản ghi
            {
                _BlockRepository = FactoryServices.GetServicesBlock(_BlockRepository);
                _BlockRepository.Delete(_BlockRepository.Get(id));
                Alert.Show("Xóa thành công!");
                Alert.ClodePopup();
            }

        }
        //Với mỗi trang truyền action khác nhau
        if (action == "'Lop'")
        {
            if (true)//Check validate, ràng buộc khi xóa bản ghi
            {
                _ClassRepository = FactoryServices.GetServicesClass(_ClassRepository);
                _ClassRepository.Delete(_ClassRepository.Get(id));
                Alert.Show("Xóa thành công!");
                Alert.ClodePopup();
            }

        }
        //Với mỗi trang truyền action khác nhau
        if (action == "'TrinhDo'")
        {
            if (true)//Check validate, ràng buộc khi xóa bản ghi
            {
                _TrinhDoRepository = FactoryServices.GetServicesTrinhDo(_TrinhDoRepository);
                _TrinhDoRepository.Delete(_TrinhDoRepository.Get(id));
                Alert.Show("Xóa thành công!");
                Alert.ClodePopup();
            }

        }
        if (action == "'NhomThucPham'")
        {
            if (ValidateNhomThucPham())//Check validate, ràng buộc khi xóa bản ghi
            {
                DeleteNhomThucPham(id);
            }
            return;
        }
        else if (action == "'ThucPham'")
        {
            if (ValidateThucPham())//Check validate, ràng buộc khi xóa bản ghi
            {
                DeleteThucPham(id);
            }
            return;
        }
    }


    bool ValidateNhomThucPham()
    {
        _ThucPhamRepository = FactoryServices.GetServicesThucPham(_ThucPhamRepository);
        List<ThucPham> list = _ThucPhamRepository.GetList().Where(r => r.NhomThucPhamId.ToString() == id).ToList();
        if (list.Count > 0)
            return false;
        return true;
    }

    bool ValidateThucPham()
    {
        _MauSuatAnChiTietRepository = FactoryServices.GetServicesMauSuatAnChiTiet(_MauSuatAnChiTietRepository);
        List<MauSuatAnChiTiet> list = _MauSuatAnChiTietRepository.GetList().Where(r => r.ThucPhamId.ToString() == id).ToList();
        if (list.Count > 0)
            return false;
        return true;
    }

    bool DeleteNhomThucPham(string _Id)
    {
        try
        {
            _NhomThucPhamRepository = FactoryServices.GetServicesNhomThucPham(_NhomThucPhamRepository);
            _NhomThucPhamRepository.Delete(_NhomThucPhamRepository.Get(_Id));
        }
        catch (Exception ex)
        {
            throw new Exception("Delete.aspx::DeleteNhomThucPham::Phát sinh lỗi.", ex);
            return false;
        }
        return true;
    }

    bool DeleteThucPham(string _Id)
    {
        try
        {
            _ThucPhamRepository = FactoryServices.GetServicesThucPham(_ThucPhamRepository);
            _ThucPhamRepository.Delete(_ThucPhamRepository.Get(id));
        }
        catch (Exception ex)
        {
            throw new Exception("Delete.aspx::DeleteThucPham::Phát sinh lỗi.", ex);
            return false;
        }
        return true;
    }
}